package www.Zheng;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/**
 * @Title: Demo1
 * @Author 郑雨杭
 * @Package www.Zheng
 * @Date 2024/7/7 16:41
 * @description: 文件操作方法
 */
public class Demo1 {
    public static void main7(String[] args) {
        File file = new File("./test.txt");
        System.out.println(file.canRead());//boolean canRead()判断是否有读取权限
        System.out.println(file.canWrite());//boolean canWrite()判断是否有写入权限
    }
    public static void main(String[] args) {
        File file = new File("./test.txt");
        File file2 = new File("./test/ttt.txt");
        System.out.println(file.renameTo(file2));//  boolean renameTo文件改名，逻辑是将源文件剪切，在目标位置粘贴在重命名
    }
    public static void main5(String[] args) {
        File f = new File("./test");
        System.out.println(f.mkdir());// boolean mkdir() 创建一级目录
        File file = new File("./test/test1");
        System.out.println(file.mkdirs());//boolean mkdirs() 创建多级目录
    }
    public static void main4(String[] args) throws IOException {
        File parent = new File("./");
        for (String s: parent.list()) {// String[] list()得到本目录下所有的文件名
            System.out.println(s);
        }
        System.out.println(Arrays.toString(parent.list()));
        for (File file : parent.listFiles()) {//File[] listFiles()得到本目录下所有的文件
            System.out.println(file.getCanonicalPath());
        }


    }
    public static void main3(String[] args) throws InterruptedException {
        File parent = new File("./");
        File file = new File(parent,"/test.txt");
        file.delete();// boolean delete()将文件立即删除
        file.deleteOnExit();// void deleteOnExit()将文件标记未删除，JVM运行结束后删除
        Thread.sleep(2000);
        System.out.println("程序结束");
    }
    public static void main2(String[] args) throws IOException {
        File parent = new File("./");
        File file = new File(parent,"/test.txt");
        System.out.println(file.exists());
        System.out.println(file.isDirectory());//boolean isDirectory() 判断文件是否未文件夹/目录
        System.out.println(file.isFile());//  boolean isFile()判断文件是否未普通文件

        file.createNewFile();//boolean createNewFile()新建file指定路径的文件

        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
    }
    public static void main1(String[] args) throws IOException {
        File parent = new File("./");
        File file = new File(parent,"/test.txt");
        System.out.println(file.exists());//  boolean exists() 判断File文件是否真是存在
        System.out.println(file.getParent()); //String getParent() 返回 File 对象的父目录文件路径
        System.out.println(file.getName());  //String getName()返回 File 对象的文件名称
        System.out.println(file.getPath()); //  String getPath() 获得文件的路径，如果初始化使用的是相对路径得到的是相对路径，如果初始化使用的是绝对路径得到的是绝对路径
        System.out.println(file.getAbsolutePath());//String getAbsolutePath() 获得绝对路径，未修饰
        System.out.println(file.getCanonicalPath());//  String getCanonicalPath()获得绝对路径，修饰
        //修饰和未修饰在初始化传入绝对路径时没有区别，在传入相对路径时修饰会将 ./ 删除
    }
}
